home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Source / IBPalettes / WW3DKit / RIBSides.m < prev    next >
Encoding:
Text File  |  1995-03-22  |  1.3 KB  |  80 lines

  1.  
  2. #import "RIBSides.h"
  3.  
  4. @implementation RIBSides
  5.  
  6.  
  7. + initialize { return [RIBSides setVersion:1], self; }
  8.  
  9. - init
  10. {
  11.   [super init];
  12.  
  13.   sides = 2;
  14.   
  15.   return self;
  16. }
  17.  
  18. - setSides:(RtInt)newSides
  19. {
  20.   if ((newSides < 1) || (newSides > 2))
  21.   {  NXLogError("warning: a RIBSides object can only have a value of 1 or 2 sides: %d isn't valid\n", 
  22.         newSides);
  23.      return self;
  24.   }
  25.   sides = newSides;
  26.   return self;
  27. }
  28.  
  29. - (RtInt)sides { return sides; }
  30.  
  31. - renderSelf:(WW3DCamera *)camera startingAt:(RtFloat)shutterOpenTime endingAt:(RtFloat)shutterCloseTime
  32. {
  33.   RiSides(sides);
  34.  
  35.   return self;
  36. }
  37.  
  38. - writeEve:(NXStream *)stream atTabLevel:(int)tab
  39. {
  40.    int  i;
  41.  
  42.  
  43.    for (i = 0; i < tab; i++)
  44.    {  NXPrintf(stream, "\t");
  45.    }
  46.    NXPrintf(stream, "Sides %d;", sides); 
  47.    return self;
  48. }
  49.  
  50. #define typeVector "d"
  51. #define typeValues &sides
  52.  
  53. - read:(NXTypedStream*)stream 
  54. {
  55.     int version;
  56.     [super read:stream];
  57.  
  58.     version = NXTypedStreamClassVersion(stream,"RIBSides");
  59.     if (version == 0) NXReadTypes(stream, "i", &version), version=1;
  60.     if (version == 1)
  61.     {  NXReadTypes(stream, typeVector, typeValues);
  62.     } 
  63.     else 
  64.     {
  65.     }
  66.     return self;
  67. }
  68.  
  69. - write:(NXTypedStream*)stream 
  70. {
  71.     [super write:stream];
  72.  
  73.     NXWriteTypes(stream, typeVector, typeValues);
  74.  
  75.     return self;
  76. }
  77.  
  78.  
  79. @end
  80.